RLQ analysis

Prepare data

When preparing palm traits for analysis, I had to remove several variables that contained NAs for our palm species. Also, I removed the descriptive traits about the fruit, and the variable “FruitShape” because it has blank values.

Run RLQ analysis and plot data

To successfully run this, I had to remove Habitat type from our environmental variables. The problem might be the naming convention. Sarah, can you make three letter codes for these?

That’s unreadable, plotting as seperate.

Summary of RLQ analysis. How to interpret this?

## RLQ analysis
## 
## Class: rlq dudi
## Call: rlq(dudiR = acpR.aravo, dudiL = afcL.aravo, dudiQ = acpQ.aravo, 
##     scannf = FALSE)
## 
## Total inertia: 0.657
## 
## Eigenvalues:
##      Ax1      Ax2      Ax3      Ax4      Ax5 
## 0.300155 0.228303 0.083533 0.041707 0.001744 
## 
## Projected inertia (%):
##     Ax1     Ax2     Ax3     Ax4     Ax5 
## 45.6877 34.7508 12.7148  6.3484  0.2654 
## 
## Cumulative projected inertia (%):
##     Ax1   Ax1:2   Ax1:3   Ax1:4   Ax1:5 
##   45.69   80.44   93.15   99.50   99.77 
## 
## (Only 5 dimensions (out of 9) are shown)
## 
## 
## Eigenvalues decomposition:
##         eig     covar      sdR      sdQ      corr
## 1 0.3001551 0.5478641 1.034229 1.481707 0.3575146
## 2 0.2283026 0.4778102 1.084627 2.004471 0.2197734
## 
## Inertia & coinertia R (acpR.aravo):
##     inertia      max     ratio
## 1  1.069629 1.755539 0.6092881
## 12 2.246045 3.085130 0.7280229
## 
## Inertia & coinertia Q (acpQ.aravo):
##     inertia      max     ratio
## 1  2.195457 5.095305 0.4308784
## 12 6.213361 7.950625 0.7814933
## 
## Correlation L (afcL.aravo):
##        corr       max     ratio
## 1 0.3575146 0.9327084 0.3833080
## 2 0.2197734 0.8335977 0.2636445

Fourth-corner analysis

From tutorial: “Fourth-corner analysis can be used to test the associations between individual traits and environmental variables. To obtain a test with a correct type I error, results of model 2 (permutation of sites, i.e. rows) and 4 (permutation of species, i.e. columns) should be combined.”

 nrepet <- 999
 four.comb.aravo <- fourthcorner(p_env[,-10], p_species,
     p_traits, modeltype = 6, p.adjust.method.G = "none",
     p.adjust.method.D = "none", nrepet = nrepet)

Plotting the data: “Blue cells correspond to negative significant relationships while red cells correspond to positive significant relationships (this can be modified using the argument col).”

I used the D2 option when plotting, but others exist: stat=“D2”: the association is measured between the quantitative variable and each category separately. A correlation coefficient is used to indicate the strength of the association between the given category and the small or large values of the quantitative variable. stat=“G”: the association between the quantitative variable and the whole categorical variable is measured by a global statistic (F). stat=“D”: the association is estimated between the quantitative variable and each category separately by a measure of the within-group homogeneity. The strength of the association is indicated by the dispersion of the values of the quantitative variable for a given category.

To replot the data for multiple comparisons: “Now, we adjust p-values for multiple comparisons (here we used the fdr method using the p.adjust.4thcorner function).”

Combine both approaches

“First, a multivariate test can be applied to evaluate the global significance of the traits-environment relationships. This test is based on the total inertia of the RLQ analysis”

## class: krandtest lightkrandtest 
## Monte-Carlo tests
## Call: randtest.rlq(xtest = rlq.aravo, nrepet = nrepet, modeltype = 6)
## 
## Number of tests:   2 
## 
## Adjustment method for multiple comparisons:   none 
## Permutation number:   999 
##      Test       Obs    Std.Obs   Alter Pvalue
## 1 Model 2 0.6569709 -0.1929621 greater  0.528
## 2 Model 4 0.6569709 -0.9437870 greater  0.829

The total inertia of RLQ analysis is equal to the SRLQ multivariate statistic defined in Dray and Legendre (2008). This statistic is returned by the fourthcorner2 function:

Srlq <- fourthcorner2(p_env[,-10], p_species, p_traits,
     modeltype = 6, p.adjust.method.G = "fdr", nrepet = nrepet)
Srlq$trRLQ
## Monte-Carlo test
## Call: fourthcorner2(tabR = p_env[, -10], tabL = p_species, tabQ = p_traits, 
##     modeltype = 6, nrepet = nrepet, p.adjust.method.G = "fdr")
## 
## Observation: -8990.343 
## 
## Based on 999 replicates
## Simulated p-value: 0.82 
## Alternative hypothesis: greater 
## 
##       Std.Obs   Expectation      Variance 
## -9.542658e-01 -8.990088e+03  7.153581e-02

“Both approaches can be combined if RLQ scores are used to represent traits and environmental variables on a biplot. Then, significant associations revealed by the fourthcorner approach can be represented using segments (blue lines for negative associations, red lines for positive associations, see the argument col). Only traits and environmental variables that have at least one significant association are represented. Here, we apply this method using adjusted pvalues for multiple comparisons and a significant level α = 0.05.”

“Another approach is provided by the fourthcorner.rlq function and consists in testing directly the links between RLQ axes and traits (typetest=”Q.axes“) or environmental variables (typetest=”R.axes“).”

RLQ axes and traits

## Fourth-corner Statistics
## ------------------------
## Permutation method  Comb. 2 and 4  ( 999  permutations)
## 
## Adjustment method for multiple comparisons:   fdr 
## call:  fourthcorner.rlq(xtest = rlq.aravo, nrepet = nrepet, modeltype = 6,      typetest = "Q.axes", p.adjust.method.G = "fdr", p.adjust.method.D = "fdr") 
## 
## ---
## 
##                             Test   Stat         Obs    Std.Obs     Alter Pvalue
## 1                AxcR1 / Climb.0 Homog.  0.96134310  2.2103289      less  0.998
## 2                AxcR2 / Climb.0 Homog.  0.89121986 -0.6953100      less  0.221
## 3                AxcR1 / Climb.1 Homog.  0.03686797 -0.1605159      less   0.65
## 4                AxcR2 / Climb.1 Homog.  0.10785496  1.7411193      less  0.949
## 5                AxcR1 / Acaul.0 Homog.  1.00000000       <NA>      less      1
## 6                AxcR2 / Acaul.0 Homog.  1.00000000       <NA>      less      1
## 7                AxcR1 / Erect.0 Homog.  0.03686797 -0.1605159      less   0.65
## 8                AxcR2 / Erect.0 Homog.  0.10785496  1.7411193      less  0.949
## 9                AxcR1 / Erect.1 Homog.  0.96134310  2.2103289      less  0.998
## 10               AxcR2 / Erect.1 Homog.  0.89121986 -0.6953100      less  0.221
## 11               AxcR1 / StemS.0 Homog.  0.03698011 -0.7434502      less   0.27
## 12               AxcR2 / StemS.0 Homog.  0.10811460  1.6622165      less  0.945
## 13               AxcR1 / StemS.1 Homog.  0.48052421 -0.5176983      less  0.293
## 14               AxcR2 / StemS.1 Homog.  0.59926258  0.2304887      less  0.576
## 15               AxcR1 / StemS.2 Homog.  0.41908006  3.4624882      less  0.991
## 16               AxcR2 / StemS.2 Homog.  0.27599200  0.7731406      less  0.838
## 17               AxcR1 / StemA.0 Homog.  0.76595294  1.6606332      less  0.945
## 18               AxcR2 / StemA.0 Homog.  0.63295693 -1.4754250      less   0.09
## 19               AxcR1 / StemA.1 Homog.  0.20361638  0.2815542      less  0.603
## 20               AxcR2 / StemA.1 Homog.  0.32299828  0.8519156      less   0.81
## 21               AxcR1 / Leave.0 Homog.  0.72348658  2.2675623      less  0.978
## 22               AxcR2 / Leave.0 Homog.  0.52504761 -1.6934789      less   0.06
## 23               AxcR1 / Leave.1 Homog.  0.24149577  0.0889176      less  0.552
## 24               AxcR2 / Leave.1 Homog.  0.44244854  1.6315717      less  0.972
## 25       AxcR1 / MaxStemHeight_m      r  0.09149172  0.6547078 two-sided  0.567
## 26       AxcR2 / MaxStemHeight_m      r -0.14448147 -1.2338561 two-sided  0.248
## 27         AxcR1 / MaxStemDia_cm      r  0.08749172  0.6256984 two-sided  0.565
## 28         AxcR2 / MaxStemDia_cm      r -0.12934431 -1.1049786 two-sided   0.29
## 29          AxcR1 / Under.canopy Homog.  0.97761339  1.7818129      less  0.964
## 30          AxcR2 / Under.canopy Homog.  0.96901013  0.5285494      less  0.683
## 31     AxcR1 / Under.understorey Homog.  0.02065195 -0.4477273      less  0.505
## 32     AxcR2 / Under.understorey Homog.  0.03098774 -0.2850270      less  0.567
## 33 AxcR1 / AverageFruitLength_cm      r  0.24503760  1.8932043 two-sided  0.048
## 34 AxcR2 / AverageFruitLength_cm      r -0.12292261 -1.0279980 two-sided   0.32
## 35           AxcR1 / Fruit.large Homog.  0.42030052  2.1573239      less  0.984
## 36           AxcR2 / Fruit.large Homog.  0.51860246  2.8699578      less  0.998
## 37           AxcR1 / Fruit.small Homog.  0.55423824  2.7002707      less  0.983
## 38           AxcR2 / Fruit.small Homog.  0.46746559  1.1976751      less  0.901
## 39     AxcR1 / Consp.conspicuous Homog.  0.28302363 -1.3088386      less  0.099
## 40     AxcR2 / Consp.conspicuous Homog.  0.49950186  1.7320683      less   0.98
## 41         AxcR1 / Consp.cryptic Homog.  0.67206694  2.0140602      less   0.96
## 42         AxcR2 / Consp.cryptic Homog.  0.46811068 -0.2212871      less  0.426
##    Pvalue.adj  
## 1           1  
## 2    0.853125  
## 3    0.853125  
## 4           1  
## 5           1  
## 6           1  
## 7    0.853125  
## 8           1  
## 9           1  
## 10   0.853125  
## 11   0.853125  
## 12          1  
## 13   0.853125  
## 14   0.853125  
## 15          1  
## 16          1  
## 17          1  
## 18      0.693  
## 19   0.853125  
## 20          1  
## 21          1  
## 22       0.63  
## 23   0.853125  
## 24          1  
## 25   0.853125  
## 26   0.853125  
## 27   0.853125  
## 28   0.853125  
## 29          1  
## 30          1  
## 31   0.853125  
## 32   0.853125  
## 33       0.63  
## 34   0.853125  
## 35          1  
## 36          1  
## 37          1  
## 38          1  
## 39      0.693  
## 40          1  
## 41          1  
## 42   0.853125  
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

RLQ axes and environmental variables

## Fourth-corner Statistics
## ------------------------
## Permutation method  Comb. 2 and 4  ( 999  permutations)
## 
## Adjustment method for multiple comparisons:   fdr 
## call:  fourthcorner.rlq(xtest = rlq.aravo, nrepet = nrepet, modeltype = 6,      typetest = "R.axes", p.adjust.method.G = "fdr", p.adjust.method.D = "fdr") 
## 
## ---
## 
##                          Test Stat          Obs    Std.Obs     Alter Pvalue
## 1        Canopy.Cover / AxcQ1    r -0.012420893 -0.1170467 two-sided  0.854
## 2  Understory.Density / AxcQ1    r -0.029892325 -0.2732097 two-sided  0.803
## 3         Leaf.Litter / AxcQ1    r  0.083803687  0.8330942 two-sided  0.431
## 4       Soil.Moisture / AxcQ1    r  0.122365689  1.1007355 two-sided  0.282
## 5                 Cec / AxcQ1    r  0.046971395  1.0646016 two-sided  0.304
## 6                 T50 / AxcQ1    r  0.009956983  0.1416304 two-sided  0.884
## 7                 T10 / AxcQ1    r  0.304644385  1.8516607 two-sided  0.069
## 8       Canopy.Height / AxcQ1    r -0.124070105 -1.0749818 two-sided  0.329
## 9           Elevation / AxcQ1    r  0.056259879  0.4380738 two-sided  0.718
## 10       Canopy.Cover / AxcQ2    r  0.014571724  0.1582932 two-sided  0.805
## 11 Understory.Density / AxcQ2    r -0.114617370 -1.1843000 two-sided  0.256
## 12        Leaf.Litter / AxcQ2    r  0.049781194  0.4615502 two-sided   0.67
## 13      Soil.Moisture / AxcQ2    r -0.068450849 -0.8102560 two-sided  0.444
## 14                Cec / AxcQ2    r  0.027732905  0.6800501 two-sided  0.545
## 15                T50 / AxcQ2    r  0.098808237  1.2481681 two-sided  0.212
## 16                T10 / AxcQ2    r -0.062682617 -0.3416222 two-sided  0.728
## 17      Canopy.Height / AxcQ2    r -0.090071839 -0.8390969 two-sided  0.488
## 18          Elevation / AxcQ2    r  0.117191890  0.9545978 two-sided  0.358
##           Pvalue.adj  
## 1              0.856  
## 2              0.856  
## 3              0.846  
## 4  0.794571428571429  
## 5              0.846  
## 6              0.884  
## 7              0.621  
## 8              0.846  
## 9              0.846  
## 10             0.856  
## 11 0.794571428571429  
## 12             0.846  
## 13             0.846  
## 14             0.846  
## 15 0.794571428571429  
## 16             0.846  
## 17             0.846  
## 18             0.846  
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Results can be represented using a table with colors indicating significance :

Significance with axes can also be reported on the factorial map of RLQ analysis. Here, significant associations with the first axis are represented in blue, with the second axis in orange, with both axes in green (variables with no significant association are in black)

RLQ/4th corner run 2 : Splitting all lifestage and points with some forest cover

Run RLQ/ FQ analysis for all lifestage types

That’s unreadable, plotting as separate.

## [1] "RLQ for juveniles"

## [1] "RLQ for adults"

Summary of RLQ analysis. How to interpret this?

## RLQ analysis
## 
## Class: rlq dudi
## Call: rlq(dudiR = Rjuv, dudiL = Ljuv, dudiQ = Qjuv, scannf = FALSE)
## 
## Total inertia: 1.429
## 
## Eigenvalues:
##      Ax1      Ax2      Ax3      Ax4      Ax5 
## 0.746537 0.500895 0.121014 0.054025 0.003262 
## 
## Projected inertia (%):
##     Ax1     Ax2     Ax3     Ax4     Ax5 
## 52.2481 35.0563  8.4695  3.7811  0.2283 
## 
## Cumulative projected inertia (%):
##     Ax1   Ax1:2   Ax1:3   Ax1:4   Ax1:5 
##   52.25   87.30   95.77   99.55   99.78 
## 
## (Only 5 dimensions (out of 9) are shown)
## 
## 
## Eigenvalues decomposition:
##         eig     covar      sdR      sdQ      corr
## 1 0.7465371 0.8640238 1.170836 1.785317 0.4133466
## 2 0.5008948 0.7077392 1.244773 1.691688 0.3360957
## 
## Inertia & coinertia R (Rjuv):
##     inertia      max     ratio
## 1  1.370856 1.858611 0.7375703
## 12 2.920316 3.464436 0.8429412
## 
## Inertia & coinertia Q (Qjuv):
##     inertia      max     ratio
## 1  3.187357 5.160919 0.6175949
## 12 6.049164 7.993775 0.7567344
## 
## Correlation L (Ljuv):
##        corr       max     ratio
## 1 0.4133466 0.9448971 0.4374514
## 2 0.3360957 0.9087471 0.3698452
## RLQ analysis
## 
## Class: rlq dudi
## Call: rlq(dudiR = Radu, dudiL = Ladu, dudiQ = Qadu, scannf = FALSE)
## 
## Total inertia: 1.04
## 
## Eigenvalues:
##      Ax1      Ax2      Ax3      Ax4      Ax5 
## 0.564979 0.338546 0.115397 0.015354 0.003838 
## 
## Projected inertia (%):
##     Ax1     Ax2     Ax3     Ax4     Ax5 
##  54.314  32.546  11.094   1.476   0.369 
## 
## Cumulative projected inertia (%):
##     Ax1   Ax1:2   Ax1:3   Ax1:4   Ax1:5 
##   54.31   86.86   97.95   99.43   99.80 
## 
## (Only 5 dimensions (out of 10) are shown)
## 
## 
## Eigenvalues decomposition:
##         eig     covar      sdR      sdQ      corr
## 1 0.5649794 0.7516511 1.317944 1.702729 0.3349451
## 2 0.3385457 0.5818468 1.128801 2.171484 0.2373747
## 
## Inertia & coinertia R (Radu):
##     inertia      max     ratio
## 1  1.736977 2.095715 0.8288231
## 12 3.011170 3.680365 0.8181714
## 
## Inertia & coinertia Q (Qadu):
##     inertia      max     ratio
## 1  2.899287 4.937157 0.5872382
## 12 7.614631 7.890549 0.9650318
## 
## Correlation L (Ladu):
##        corr       max     ratio
## 1 0.3349451 1.0000000 0.3349451
## 2 0.2373747 0.9128287 0.2600430

Fourth-corner analysis

## [1] "FQ for juveniles"

## [1] "FQ for adults"

With adjusted p-values

## [1] "FQ for Juveniles"
## [1] "FQ for Adults"

Combine both approaches

## class: krandtest lightkrandtest 
## Monte-Carlo tests
## Call: randtest.rlq(xtest = rlq.juv, nrepet = nrepet, modeltype = 6)
## 
## Number of tests:   2 
## 
## Adjustment method for multiple comparisons:   none 
## Permutation number:   999 
##      Test     Obs     Std.Obs   Alter Pvalue
## 1 Model 2 1.42883  0.07905656 greater  0.391
## 2 Model 4 1.42883 -0.30713617 greater  0.578

## class: krandtest lightkrandtest 
## Monte-Carlo tests
## Call: randtest.rlq(xtest = rlq.adu, nrepet = nrepet, modeltype = 6)
## 
## Number of tests:   2 
## 
## Adjustment method for multiple comparisons:   none 
## Permutation number:   999 
##      Test      Obs    Std.Obs   Alter Pvalue
## 1 Model 2 1.040218 15.0904600 greater  0.001
## 2 Model 4 1.040218 -0.1570179 greater  0.541

The total inertia of RLQ analysis is equal to the SRLQ multivariate statistic defined in Dray and Legendre (2008). This statistic is returned by the fourthcorner2 function:

## Monte-Carlo test
## Call: fourthcorner2(tabR = p_envFORCOVER, tabL = p_speciesJUV, tabQ = p_traits, 
##     modeltype = 6, nrepet = nrepet, p.adjust.method.G = "fdr")
## 
## Observation: -8989.571 
## 
## Based on 874 replicates
## Simulated p-value: 0.5154286 
## Alternative hypothesis: greater 
## 
##       Std.Obs   Expectation      Variance 
##  3.514615e-01 -1.054279e+04  1.953042e+07
## Monte-Carlo test
## Call: fourthcorner2(tabR = p_envFORCOVER, tabL = p_speciesADU, tabQ = p_traits, 
##     modeltype = 6, nrepet = nrepet, p.adjust.method.G = "fdr")
## 
## Observation: -8989.96 
## 
## Based on 999 replicates
## Simulated p-value: 0.472 
## Alternative hypothesis: greater 
## 
##       Std.Obs   Expectation      Variance 
##  3.688713e-01 -1.078993e+04  2.381112e+07
## [1] "juvenile"

## [1] "adult"

“Another approach is provided by the fourthcorner.rlq function and consists in testing directly the links between RLQ axes and traits (typetest=”Q.axes“) or environmental variables (typetest=”R.axes“).”

RLQ axes and traits

## Fourth-corner Statistics
## ------------------------
## Permutation method  Comb. 2 and 4  ( 999  permutations)
## 
## Adjustment method for multiple comparisons:   fdr 
## call:  fourthcorner.rlq(xtest = rlq.juv, nrepet = nrepet, modeltype = 6,      typetest = "Q.axes", p.adjust.method.G = "fdr", p.adjust.method.D = "fdr") 
## 
## ---
## 
##                             Test   Stat          Obs     Std.Obs     Alter
## 1                AxcR1 / Climb.0 Homog.  0.935408906  0.96967725      less
## 2                AxcR2 / Climb.0 Homog.  0.896219686 -0.47457368      less
## 3                AxcR1 / Climb.1 Homog.  0.062673284  0.07499743      less
## 4                AxcR2 / Climb.1 Homog.  0.100874152  0.98504965      less
## 5                AxcR1 / Acaul.0 Homog.  1.000000000        <NA>      less
## 6                AxcR2 / Acaul.0 Homog.  1.000000000        <NA>      less
## 7                AxcR1 / Erect.0 Homog.  0.062673284  0.07499743      less
## 8                AxcR2 / Erect.0 Homog.  0.100874152  0.98504965      less
## 9                AxcR1 / Erect.1 Homog.  0.935408906  0.96967725      less
## 10               AxcR2 / Erect.1 Homog.  0.896219686 -0.47457368      less
## 11               AxcR1 / StemS.0 Homog.  0.062673284 -0.42034688      less
## 12               AxcR2 / StemS.0 Homog.  0.100874152  0.98504965      less
## 13               AxcR1 / StemS.1 Homog.  0.434638318 -0.67428954      less
## 14               AxcR2 / StemS.1 Homog.  0.515663169 -0.20689865      less
## 15               AxcR1 / StemS.2 Homog.  0.336057240  1.87092410      less
## 16               AxcR2 / StemS.2 Homog.  0.379436083  2.85853809      less
## 17               AxcR1 / StemA.0 Homog.  0.823478093  2.23470080      less
## 18               AxcR2 / StemA.0 Homog.  0.594579406 -1.52374027      less
## 19               AxcR1 / StemA.1 Homog.  0.174538043  0.04194978      less
## 20               AxcR2 / StemA.1 Homog.  0.280158884  0.51031538      less
## 21               AxcR1 / Leave.0 Homog.  0.758100818  2.28127966      less
## 22               AxcR2 / Leave.0 Homog.  0.493674666 -1.59282544      less
## 23               AxcR1 / Leave.1 Homog.  0.237514667  0.03760936      less
## 24               AxcR2 / Leave.1 Homog.  0.419778917  1.50095298      less
## 25       AxcR1 / MaxStemHeight_m      r -0.210341823 -1.34807034 two-sided
## 26       AxcR2 / MaxStemHeight_m      r -0.077264855 -0.63944465 two-sided
## 27         AxcR1 / MaxStemDia_cm      r -0.214542329 -1.40938215 two-sided
## 28         AxcR2 / MaxStemDia_cm      r -0.059720466 -0.55253602 two-sided
## 29          AxcR1 / Under.canopy Homog.  0.980841113  0.83021006      less
## 30          AxcR2 / Under.canopy Homog.  0.982255001  1.11827331      less
## 31     AxcR1 / Under.understorey Homog.  0.017971110 -0.52488901      less
## 32     AxcR2 / Under.understorey Homog.  0.017628019 -0.54134604      less
## 33 AxcR1 / AverageFruitLength_cm      r -0.411890001 -2.71425800 two-sided
## 34 AxcR2 / AverageFruitLength_cm      r -0.004254722 -0.08650445 two-sided
## 35           AxcR1 / Fruit.large Homog.  0.384995644  1.64139046      less
## 36           AxcR2 / Fruit.large Homog.  0.464108800  2.22705310      less
## 37           AxcR1 / Fruit.small Homog.  0.515842044  2.16817012      less
## 38           AxcR2 / Fruit.small Homog.  0.534845101  2.62076183      less
## 39     AxcR1 / Consp.conspicuous Homog.  0.273692963 -1.09924788      less
## 40     AxcR2 / Consp.conspicuous Homog.  0.460961375  1.44910031      less
## 41         AxcR1 / Consp.cryptic Homog.  0.718840507  2.14149206      less
## 42         AxcR2 / Consp.cryptic Homog.  0.448132549 -0.22215672      less
##               Pvalue        Pvalue.adj  
## 1              0.842                 1  
## 2              0.236 0.921796165489405  
## 3  0.731121281464531 0.959596681922197  
## 4              0.844                 1  
## 5                  1                 1  
## 6                  1                 1  
## 7  0.731121281464531 0.959596681922197  
## 8              0.844                 1  
## 9              0.842                 1  
## 10             0.236 0.921796165489405  
## 11 0.476286579212916 0.921796165489405  
## 12             0.844                 1  
## 13             0.271 0.921796165489405  
## 14             0.418 0.921796165489405  
## 15             0.935                 1  
## 16             0.981                 1  
## 17             0.984                 1  
## 18             0.074            0.6972  
## 19             0.573 0.921796165489405  
## 20             0.687                 1  
## 21             0.979                 1  
## 22             0.083            0.6972  
## 23             0.522 0.921796165489405  
## 24             0.952                 1  
## 25             0.191 0.921796165489405  
## 26             0.537                 1  
## 27             0.163 0.921796165489405  
## 28             0.595                 1  
## 29             0.793                 1  
## 30             0.874                 1  
## 31 0.485193621867882 0.921796165489405  
## 32 0.556947608200456 0.921796165489405  
## 33             0.001             0.042 *
## 34             0.932                 1  
## 35             0.946                 1  
## 36              0.98                 1  
## 37              0.96                 1  
## 38             0.974                 1  
## 39             0.152 0.921796165489405  
## 40             0.946                 1  
## 41             0.974                 1  
## 42             0.406 0.921796165489405  
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Fourth-corner Statistics
## ------------------------
## Permutation method  Comb. 2 and 4  ( 999  permutations)
## 
## Adjustment method for multiple comparisons:   fdr 
## call:  fourthcorner.rlq(xtest = rlq.adu, nrepet = nrepet, modeltype = 6,      typetest = "Q.axes", p.adjust.method.G = "fdr", p.adjust.method.D = "fdr") 
## 
## ---
## 
##                             Test   Stat          Obs     Std.Obs     Alter
## 1                AxcR1 / Climb.0 Homog.  0.836672753 -1.34291973      less
## 2                AxcR2 / Climb.0 Homog.  0.940072279  0.30257713      less
## 3                AxcR1 / Climb.1 Homog.  0.074800140  0.85576691      less
## 4                AxcR2 / Climb.1 Homog.  0.056918191 -0.01127257      less
## 5                AxcR1 / Acaul.0 Homog.  1.000000000        <NA>      less
## 6                AxcR2 / Acaul.0 Homog.  1.000000000        <NA>      less
## 7                AxcR1 / Erect.0 Homog.  0.074800140  0.85576691      less
## 8                AxcR2 / Erect.0 Homog.  0.056918191 -0.01127257      less
## 9                AxcR1 / Erect.1 Homog.  0.836672753 -1.34291973      less
## 10               AxcR2 / Erect.1 Homog.  0.940072279  0.30257713      less
## 11               AxcR1 / StemS.0 Homog.  0.100179857  2.25722950      less
## 12               AxcR2 / StemS.0 Homog.  0.061059378 -0.48260622      less
## 13               AxcR1 / StemS.1 Homog.  0.641005501  0.58673181      less
## 14               AxcR2 / StemS.1 Homog.  0.722324576  1.18718107      less
## 15               AxcR1 / StemS.2 Homog.  0.155320246 -0.99102824      less
## 16               AxcR2 / StemS.2 Homog.  0.193553765 -0.67398657      less
## 17               AxcR1 / StemA.0 Homog.  0.656649208  1.94540679      less
## 18               AxcR2 / StemA.0 Homog.  0.629379796  0.81822327      less
## 19               AxcR1 / StemA.1 Homog.  0.312689117  1.19583027      less
## 20               AxcR2 / StemA.1 Homog.  0.363941396  1.34565234      less
## 21               AxcR1 / Leave.0 Homog.  0.510919122 -1.72326233      less
## 22               AxcR2 / Leave.0 Homog.  0.566988117  0.85833295      less
## 23               AxcR1 / Leave.1 Homog.  0.488493502  1.08787340      less
## 24               AxcR2 / Leave.1 Homog.  0.421492370  1.19820604      less
## 25       AxcR1 / MaxStemHeight_m      r  0.088990901  0.53514222 two-sided
## 26       AxcR2 / MaxStemHeight_m      r  0.252057476  2.16124915 two-sided
## 27         AxcR1 / MaxStemDia_cm      r -0.035464815 -0.27876151 two-sided
## 28         AxcR2 / MaxStemDia_cm      r  0.258239812  2.26290200 two-sided
## 29          AxcR1 / Under.canopy Homog.  0.940406773  0.41173489      less
## 30          AxcR2 / Under.canopy Homog.  0.949032509  1.04186297      less
## 31     AxcR1 / Under.understorey Homog.  0.058403035  0.12717346      less
## 32     AxcR2 / Under.understorey Homog.  0.049026243 -0.12237860      less
## 33 AxcR1 / AverageFruitLength_cm      r -0.004633307 -0.10888984 two-sided
## 34 AxcR2 / AverageFruitLength_cm      r  0.158137536  1.45224157 two-sided
## 35           AxcR1 / Fruit.large Homog.  0.463222263  2.53403073      less
## 36           AxcR2 / Fruit.large Homog.  0.558166806  0.44171381      less
## 37           AxcR1 / Fruit.small Homog.  0.534548704  2.65524120      less
## 38           AxcR2 / Fruit.small Homog.  0.400441438 -1.64502900      less
## 39     AxcR1 / Consp.conspicuous Homog.  0.559426785  1.04471923      less
## 40     AxcR2 / Consp.conspicuous Homog.  0.506219974  0.09196562      less
## 41         AxcR1 / Consp.cryptic Homog.  0.439722847 -0.33257211      less
## 42         AxcR2 / Consp.cryptic Homog.  0.473926570 -0.10278281      less
##               Pvalue        Pvalue.adj  
## 1              0.123               0.6  
## 2                0.6 0.969230769230769  
## 3              0.812                 1  
## 4  0.804560260586319                 1  
## 5                  1                 1  
## 6                  1                 1  
## 7              0.812                 1  
## 8  0.804560260586319                 1  
## 9              0.123               0.6  
## 10               0.6 0.969230769230769  
## 11             0.983                 1  
## 12             0.494                 1  
## 13             0.692                 1  
## 14             0.894                 1  
## 15             0.199               0.6  
## 16              0.32              0.84  
## 17             0.971                 1  
## 18             0.791                 1  
## 19             0.861                 1  
## 20             0.892                 1  
## 21             0.059            0.4956  
## 22             0.815                 1  
## 23             0.869                 1  
## 24             0.886                 1  
## 25             0.615                 1  
## 26             0.006             0.126  
## 27             0.781                 1  
## 28             0.004             0.126  
## 29             0.633 0.984666666666667  
## 30             0.868                 1  
## 31 0.673361522198731                 1  
## 32 0.673361522198731                 1  
## 33              0.91                 1  
## 34              0.17               0.6  
## 35             0.983                 1  
## 36             0.671                 1  
## 37             0.996                 1  
## 38              0.05             0.175  
## 39              0.86                 1  
## 40             0.564                 1  
## 41             0.391 0.912333333333333  
## 42             0.464                 1  
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

RLQ axes and environmental variables

## Fourth-corner Statistics
## ------------------------
## Permutation method  Comb. 2 and 4  ( 999  permutations)
## 
## Adjustment method for multiple comparisons:   fdr 
## call:  fourthcorner.rlq(xtest = rlq.juv, nrepet = nrepet, modeltype = 6,      typetest = "R.axes", p.adjust.method.G = "fdr", p.adjust.method.D = "fdr") 
## 
## ---
## 
##                          Test   Stat          Obs      Std.Obs     Alter Pvalue        Pvalue.adj  
## 1        Canopy.Cover / AxcQ1      r -0.023925899 -0.296160096 two-sided  0.684             0.864  
## 2  Understory.Density / AxcQ1      r -0.046616337 -0.360083605 two-sided  0.755 0.876571428571429  
## 3         Leaf.Litter / AxcQ1      r -0.004365802 -0.009436238 two-sided  0.993             0.993  
## 4       Soil.Moisture / AxcQ1      r -0.220288874 -1.579975730 two-sided  0.116 0.397714285714286  
## 5                 Cec / AxcQ1      r -0.021245562 -0.136563693 two-sided  0.767 0.876571428571429  
## 6                 T50 / AxcQ1      r  0.050329640  0.710468941 two-sided   0.54 0.826909090909091  
## 7                 T10 / AxcQ1      r -0.314893261 -1.514591626 two-sided  0.122            0.5856  
## 8       Canopy.Height / AxcQ1      r  0.080491140  0.604421044 two-sided  0.621 0.826909090909091  
## 9           Elevation / AxcQ1      r  0.074152550  0.527986636 two-sided  0.649 0.826909090909091  
## 10      Habit.Primary / AxcQ1 Homog.  0.339462103 -1.520290255      less  0.085              0.51  
## 11    Habit.Secondary / AxcQ1 Homog.  0.586665219  1.286935573      less   0.88 0.918260869565217  
## 12   Habit.Transition / AxcQ1 Homog.  0.005065871 -0.266076910      less   0.43 0.797538461538462  
## 13       Canopy.Cover / AxcQ2      r -0.077862187 -1.174779421 two-sided  0.266 0.709333333333333  
## 14 Understory.Density / AxcQ2      r -0.189627260 -1.750823268 two-sided  0.065              0.51  
## 15        Leaf.Litter / AxcQ2      r  0.155590484  1.200385156 two-sided  0.254 0.709333333333333  
## 16      Soil.Moisture / AxcQ2      r -0.067983135 -0.607045722 two-sided  0.573 0.826909090909091  
## 17                Cec / AxcQ2      r  0.052327639  0.860974514 two-sided  0.432 0.797538461538462  
## 18                T50 / AxcQ2      r  0.153959525  1.505677775 two-sided  0.166 0.445333333333333  
## 19                T10 / AxcQ2      r  0.119721332  0.575475216 two-sided  0.581 0.826909090909091  
## 20      Canopy.Height / AxcQ2      r -0.132627095 -0.971707959 two-sided  0.391 0.797538461538462  
## 21          Elevation / AxcQ2      r  0.213975341  1.446778593 two-sided  0.166             0.664  
## 22      Habit.Primary / AxcQ2 Homog.  0.548269612  1.139346034      less  0.874 0.916173913043478  
## 23    Habit.Secondary / AxcQ2 Homog.  0.448034986 -0.547722673      less  0.306            0.7344  
## 24   Habit.Transition / AxcQ2 Homog.  0.003669394 -0.757721858      less  0.195 0.668571428571429  
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## Fourth-corner Statistics
## ------------------------
## Permutation method  Comb. 2 and 4  ( 999  permutations)
## 
## Adjustment method for multiple comparisons:   fdr 
## call:  fourthcorner.rlq(xtest = rlq.adu, nrepet = nrepet, modeltype = 6,      typetest = "R.axes", p.adjust.method.G = "fdr", p.adjust.method.D = "fdr") 
## 
## ---
## 
##                          Test   Stat          Obs     Std.Obs     Alter Pvalue        Pvalue.adj  
## 1        Canopy.Cover / AxcQ1      r -0.020525343 -0.56703969 two-sided   0.56             0.885  
## 2  Understory.Density / AxcQ1      r  0.176408140  1.94382686 two-sided  0.058               0.5  
## 3         Leaf.Litter / AxcQ1      r -0.050385708 -0.54199488 two-sided  0.677 0.894315789473684  
## 4       Soil.Moisture / AxcQ1      r -0.201383111 -1.93983621 two-sided  0.082               0.5  
## 5                 Cec / AxcQ1      r -0.032244658 -0.74286146 two-sided  0.509             0.885  
## 6                 T50 / AxcQ1      r  0.062841701  1.54542498 two-sided  0.113               0.5  
## 7                 T10 / AxcQ1      r  0.104356069  1.11107381 two-sided  0.303             0.808  
## 8       Canopy.Height / AxcQ1      r -0.079818074 -0.55941920 two-sided  0.581             0.885  
## 9           Elevation / AxcQ1      r  0.292632454  1.95681128 two-sided  0.055               0.5  
## 10      Habit.Primary / AxcQ1 Homog.  0.616404905  3.71633735      less      1                 1  
## 11    Habit.Secondary / AxcQ1 Homog.  0.351213487  0.03703335      less  0.454             0.885  
## 12   Habit.Transition / AxcQ1 Homog.  0.020031880  0.95465388      less  0.869             0.948  
## 13       Canopy.Cover / AxcQ2      r -0.059842511 -1.50543304 two-sided  0.125               0.5  
## 14 Understory.Density / AxcQ2      r -0.043046543 -0.57583295 two-sided   0.59             0.885  
## 15        Leaf.Litter / AxcQ2      r  0.116980880  1.42665490 two-sided   0.17 0.582857142857143  
## 16      Soil.Moisture / AxcQ2      r -0.059469654 -0.52055374 two-sided  0.628 0.886588235294118  
## 17                Cec / AxcQ2      r  0.003349974  0.07228771 two-sided   0.95                 1  
## 18                T50 / AxcQ2      r -0.015681784 -0.44324348 two-sided  0.708 0.894315789473684  
## 19                T10 / AxcQ2      r  0.114251067  1.03021098 two-sided  0.373             0.885  
## 20      Canopy.Height / AxcQ2      r  0.185686323  1.56551957 two-sided  0.099               0.5  
## 21          Elevation / AxcQ2      r  0.006309089  0.15217991 two-sided  0.873 0.997714285714286  
## 22      Habit.Primary / AxcQ2 Homog.  0.671935150  7.28842915      less      1                 1  
## 23    Habit.Secondary / AxcQ2 Homog.  0.315497275 -0.70882251      less  0.231             0.693  
## 24   Habit.Transition / AxcQ2 Homog.  0.011255924  0.93295625      less  0.831             0.948  
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Results can be represented using a table with colors indicating significance :

## [1] "juveniles"

## [1] "adults"

Significance with axes can also be reported on the factorial map of RLQ analysis. Here, significant associations with the first axis are represented in blue, with the second axis in orange, with both axes in green (variables with no significant association are in black)

## [1] "juveniles"

## [1] "adults"

RLQ/4th corner run 3 : Checking to see which environmental variables may be removed and “endemism” as a trait

 p_traits$Endemic<-as.factor(palm_list$Endemic)
# splom(p_envFORCOVER)
res1 <- corrplot::cor.mtest(p_envFORCOVER[,1:9], conf.level = 0.95)
corrplot::corrplot(cor(p_envFORCOVER[,1:9]),p.mat = res1$p,type = "upper")

corrplot::corrplot(cor(p_envFORCOVER[,1:9]), p.mat = res1$p, insig = "p-value")

corrplot::corrplot(cor(p_envFORCOVER[,1:9]), p.mat = res1$p, insig = "blank")

corrplot::corrplot(cor(p_envFORCOVER[,1:9]), p.mat = res1$p, insig = "pch",pch= 1)

library("PerformanceAnalytics")
## Loading required package: xts
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
## 
## Attaching package: 'xts'
## The following objects are masked from 'package:dplyr':
## 
##     first, last
## 
## Attaching package: 'PerformanceAnalytics'
## The following object is masked from 'package:graphics':
## 
##     legend
chart.Correlation(p_envFORCOVER[,1:9], histogram=TRUE, pch=19)

tempdf<-NULL
tempdf$a<-seq(1,2,.1)
tempdf$b<-seq(2,3,.1)
tempdf<-as.data.frame(tempdf)
rownames(tempdf)<-LETTERS[1:11]
tempL <- dudi.coa(tempdf, scannf = FALSE)

RLQ/4th corner run 4 : Including Luke’s data and broken down by age

Run RLQ/ FQ analysis for all lifestage types COMBINED DATA

That’s unreadable, plotting as separate.

## [1] "RLQ for juveniles"

## [1] "RLQ for adults"

Summary of RLQ analysis. How to interpret this?

## RLQ analysis
## 
## Class: rlq dudi
## Call: rlq(dudiR = Rjuv, dudiL = Ljuv, dudiQ = Qjuv, scannf = FALSE)
## 
## Total inertia: 0.5221
## 
## Eigenvalues:
##      Ax1      Ax2      Ax3      Ax4      Ax5 
## 0.321208 0.121525 0.065548 0.010452 0.002561 
## 
## Projected inertia (%):
##     Ax1     Ax2     Ax3     Ax4     Ax5 
## 61.5185 23.2748 12.5539  2.0018  0.4904 
## 
## Cumulative projected inertia (%):
##     Ax1   Ax1:2   Ax1:3   Ax1:4   Ax1:5 
##   61.52   84.79   97.35   99.35   99.84 
## 
## (Only 5 dimensions (out of 7) are shown)
## 
## 
## Eigenvalues decomposition:
##         eig     covar       sdR      sdQ      corr
## 1 0.3212085 0.5667526 1.0618451 1.466338 0.3639973
## 2 0.1215254 0.3486050 0.9898542 1.717393 0.2050655
## 
## Inertia & coinertia R (Rjuv):
##     inertia      max     ratio
## 1  1.127515 1.654677 0.6814108
## 12 2.107326 2.887627 0.7297779
## 
## Inertia & coinertia Q (Qjuv):
##     inertia      max     ratio
## 1  2.150148 3.725634 0.5771226
## 12 5.099586 6.938275 0.7349933
## 
## Correlation L (Ljuv):
##        corr       max     ratio
## 1 0.3639973 0.8815343 0.4129134
## 2 0.2050655 0.8457013 0.2424799
## RLQ analysis
## 
## Class: rlq dudi
## Call: rlq(dudiR = Radu, dudiL = Ladu, dudiQ = Qadu, scannf = FALSE)
## 
## Total inertia: 0.4482
## 
## Eigenvalues:
##       Ax1       Ax2       Ax3       Ax4       Ax5 
## 0.2817479 0.0970319 0.0625616 0.0057604 0.0006139 
## 
## Projected inertia (%):
##     Ax1     Ax2     Ax3     Ax4     Ax5 
## 62.8562 21.6472 13.9571  1.2851  0.1369 
## 
## Cumulative projected inertia (%):
##     Ax1   Ax1:2   Ax1:3   Ax1:4   Ax1:5 
##   62.86   84.50   98.46   99.75   99.88 
## 
## (Only 5 dimensions (out of 7) are shown)
## 
## 
## Eigenvalues decomposition:
##          eig     covar      sdR      sdQ      corr
## 1 0.28174787 0.5307993 1.078063 1.865211 0.2639723
## 2 0.09703185 0.3114994 1.075962 1.571653 0.1842060
## 
## Inertia & coinertia R (Radu):
##     inertia      max     ratio
## 1  1.162219 1.419612 0.8186877
## 12 2.319913 2.693617 0.8612631
## 
## Inertia & coinertia Q (Qadu):
##     inertia      max     ratio
## 1  3.479011 4.070173 0.8547575
## 12 5.949104 7.437301 0.7999009
## 
## Correlation L (Ladu):
##        corr       max     ratio
## 1 0.2639723 1.0000000 0.2639723
## 2 0.1842060 0.9421674 0.1955130

Fourth-corner analysis

## [1] "FQ for juveniles"

## [1] "FQ for adults"

With adjusted p-values

## [1] "FQ for Juveniles"

## [1] "FQ for Adults"

Combine both approaches

## class: krandtest lightkrandtest 
## Monte-Carlo tests
## Call: randtest.rlq(xtest = rlq.juv, nrepet = nrepet, modeltype = 6)
## 
## Number of tests:   2 
## 
## Adjustment method for multiple comparisons:   none 
## Permutation number:   999 
##      Test       Obs    Std.Obs   Alter Pvalue
## 1 Model 2 0.5221335 11.8243587 greater  0.001
## 2 Model 4 0.5221335  0.1873256 greater  0.400

## class: krandtest lightkrandtest 
## Monte-Carlo tests
## Call: randtest.rlq(xtest = rlq.adu, nrepet = nrepet, modeltype = 6)
## 
## Number of tests:   2 
## 
## Adjustment method for multiple comparisons:   none 
## Permutation number:   999 
##      Test       Obs   Std.Obs   Alter Pvalue
## 1 Model 2 0.4482421 19.841859 greater  0.001
## 2 Model 4 0.4482421  1.951894 greater  0.041

The total inertia of RLQ analysis is equal to the SRLQ multivariate statistic defined in Dray and Legendre (2008). This statistic is returned by the fourthcorner2 function:

## Monte-Carlo test
## Call: fourthcorner2(tabR = p_envCombined, tabL = JuvCombined, tabQ = p_traits2, 
##     modeltype = 6, nrepet = nrepet, p.adjust.method.G = "fdr")
## 
## Observation: -4994.568 
## 
## Based on 952 replicates
## Simulated p-value: 0.1049318 
## Alternative hypothesis: greater 
## 
##       Std.Obs   Expectation      Variance 
##  1.361802e+00 -4.994701e+03  9.623195e-03
## Monte-Carlo test
## Call: fourthcorner2(tabR = p_envCombined, tabL = AduCombined, tabQ = p_traits2, 
##     modeltype = 6, nrepet = nrepet, p.adjust.method.G = "fdr")
## 
## Observation: -4994.563 
## 
## Based on 999 replicates
## Simulated p-value: 0.254 
## Alternative hypothesis: greater 
## 
##       Std.Obs   Expectation      Variance 
##  4.654074e-01 -6.774622e+03  1.462858e+07
## [1] "juvenile"

## [1] "adult"

“Another approach is provided by the fourthcorner.rlq function and consists in testing directly the links between RLQ axes and traits (typetest=”Q.axes“) or environmental variables (typetest=”R.axes“).”

RLQ axes and traits

 # testQaxes.comb.seed <- fourthcorner.rlq(rlq.seed, modeltype = 6,
 #     typetest = "Q.axes", nrepet = nrepet, p.adjust.method.G = "fdr",
 #     p.adjust.method.D = "fdr")
 # testRaxes.comb.seed <- fourthcorner.rlq(rlq.seed, modeltype = 6,
 #     typetest = "R.axes", nrepet = nrepet, p.adjust.method.G = "fdr",
 #     p.adjust.method.D = "fdr")
 # print(testQaxes.comb.seed, stat = "D")
 
 testQaxes.comb.juv <- fourthcorner.rlq(rlq.juv, modeltype = 6,
     typetest = "Q.axes", nrepet = nrepet, p.adjust.method.G = "fdr",
     p.adjust.method.D = "fdr")
 testRaxes.comb.juv <- fourthcorner.rlq(rlq.juv, modeltype = 6,
     typetest = "R.axes", nrepet = nrepet, p.adjust.method.G = "fdr",
     p.adjust.method.D = "fdr")
 print(testQaxes.comb.juv, stat = "D")
## Fourth-corner Statistics
## ------------------------
## Permutation method  Comb. 2 and 4  ( 999  permutations)
## 
## Adjustment method for multiple comparisons:   fdr 
## call:  fourthcorner.rlq(xtest = rlq.juv, nrepet = nrepet, modeltype = 6,      typetest = "Q.axes", p.adjust.method.G = "fdr", p.adjust.method.D = "fdr") 
## 
## ---
## 
##                             Test   Stat         Obs     Std.Obs     Alter
## 1                AxcR1 / Climb.0 Homog.  0.95046746  0.07138620      less
## 2                AxcR2 / Climb.0 Homog.  0.95422680  0.13674680      less
## 3                AxcR1 / Climb.1 Homog.  0.03394098 -0.12323258      less
## 4                AxcR2 / Climb.1 Homog.  0.03972005 -0.13779094      less
## 5                AxcR1 / Erect.0 Homog.  0.03394098 -0.12323258      less
## 6                AxcR2 / Erect.0 Homog.  0.03972005 -0.13779094      less
## 7                AxcR1 / Erect.1 Homog.  0.95046746  0.07138620      less
## 8                AxcR2 / Erect.1 Homog.  0.95422680  0.13674680      less
## 9                AxcR1 / StemS.0 Homog.  0.04204604 -0.61867619      less
## 10               AxcR2 / StemS.0 Homog.  0.04802839 -0.70164089      less
## 11               AxcR1 / StemS.1 Homog.  0.60452933  0.15846771      less
## 12               AxcR2 / StemS.1 Homog.  0.70487291  1.98693740      less
## 13               AxcR1 / StemS.2 Homog.  0.32652403  1.98738704      less
## 14               AxcR2 / StemS.2 Homog.  0.23553452 -0.55756608      less
## 15               AxcR1 / StemA.0 Homog.  0.40813595  0.03169471      less
## 16               AxcR2 / StemA.0 Homog.  0.37584738 -1.33753290      less
## 17               AxcR1 / StemA.1 Homog.  0.58107785  3.19615152      less
## 18               AxcR2 / StemA.1 Homog.  0.62291314  1.33254431      less
## 19               AxcR1 / Leave.0 Homog.  0.35013685 -1.05851252      less
## 20               AxcR2 / Leave.0 Homog.  0.33103757 -1.51366322      less
## 21               AxcR1 / Leave.1 Homog.  0.62537932  2.81288502      less
## 22               AxcR2 / Leave.1 Homog.  0.66894373  1.55669618      less
## 23       AxcR1 / MaxStemHeight_m      r -0.06094508 -0.36262386 two-sided
## 24       AxcR2 / MaxStemHeight_m      r  0.06916793  0.60390270 two-sided
## 25         AxcR1 / MaxStemDia_cm      r -0.08587771 -0.55195799 two-sided
## 26         AxcR2 / MaxStemDia_cm      r  0.10542006  0.92403478 two-sided
## 27          AxcR1 / Under.canopy Homog.  0.81936955 -0.26029817      less
## 28          AxcR2 / Under.canopy Homog.  0.80912636 -0.47885210      less
## 29     AxcR1 / Under.understorey Homog.  0.13404906  0.02796752      less
## 30     AxcR2 / Under.understorey Homog.  0.18885851  1.21593497      less
## 31 AxcR1 / AverageFruitLength_cm      r  0.02707779  0.14806177 two-sided
## 32 AxcR2 / AverageFruitLength_cm      r  0.18274444  1.55851599 two-sided
## 33           AxcR1 / Fruit.large Homog.  0.17308810 -0.06267657      less
## 34           AxcR2 / Fruit.large Homog.  0.27200843  1.74912228      less
## 35           AxcR1 / Fruit.small Homog.  0.80735285  2.90681136      less
## 36           AxcR2 / Fruit.small Homog.  0.68227570 -1.26106899      less
## 37     AxcR1 / Consp.conspicuous Homog.  0.66401503  1.38215281      less
## 38     AxcR2 / Consp.conspicuous Homog.  0.69610099  1.80919260      less
## 39         AxcR1 / Consp.cryptic Homog.  0.31336905  0.38017141      less
## 40         AxcR2 / Consp.cryptic Homog.  0.30244852 -0.18452557      less
## 41               AxcR1 / Endem.N Homog.  0.70855699 -0.28893177      less
## 42               AxcR2 / Endem.N Homog.  0.72879586 -0.16113629      less
## 43               AxcR1 / Endem.Y Homog.  0.20049385 -0.27685450      less
## 44               AxcR2 / Endem.Y Homog.  0.27057797  0.29273666      less
##               Pvalue        Pvalue.adj  
## 1              0.373 0.909333333333333  
## 2              0.523 0.909333333333333  
## 3  0.666317991631799 0.909333333333333  
## 4  0.556485355648536 0.909333333333333  
## 5  0.666317991631799 0.909333333333333  
## 6  0.556485355648536 0.909333333333333  
## 7              0.373 0.909333333333333  
## 8              0.523 0.909333333333333  
## 9              0.345 0.909333333333333  
## 10             0.294 0.909333333333333  
## 11             0.542 0.909333333333333  
## 12             0.993                 1  
## 13              0.97                 1  
## 14             0.318 0.909333333333333  
## 15             0.509 0.670352941176471  
## 16             0.083 0.199157894736842  
## 17                 1                 1  
## 18             0.916                 1  
## 19             0.149  0.28504347826087  
## 20             0.055           0.15125  
## 21             0.997                 1  
## 22             0.948                 1  
## 23             0.763            0.9592  
## 24             0.625 0.909333333333333  
## 25             0.614 0.909333333333333  
## 26             0.413 0.909333333333333  
## 27             0.311 0.909333333333333  
## 28             0.296 0.909333333333333  
## 29              0.62 0.909333333333333  
## 30             0.901                 1  
## 31             0.902                 1  
## 32             0.127            0.6985  
## 33             0.546 0.909333333333333  
## 34             0.945                 1  
## 35                 1                 1  
## 36             0.118            0.6985  
## 37             0.905                 1  
## 38             0.962                 1  
## 39             0.656 0.780108108108108  
## 40             0.421 0.638758620689655  
## 41             0.367 0.909333333333333  
## 42             0.427 0.909333333333333  
## 43             0.454 0.909333333333333  
## 44             0.626 0.909333333333333  
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
 testQaxes.comb.adu <- fourthcorner.rlq(rlq.adu, modeltype = 6,
     typetest = "Q.axes", nrepet = nrepet, p.adjust.method.G = "fdr",
     p.adjust.method.D = "fdr")
 testRaxes.comb.adu <- fourthcorner.rlq(rlq.adu, modeltype = 6,
     typetest = "R.axes", nrepet = nrepet, p.adjust.method.G = "fdr",
     p.adjust.method.D = "fdr")
 print(testQaxes.comb.adu, stat = "D")
## Fourth-corner Statistics
## ------------------------
## Permutation method  Comb. 2 and 4  ( 999  permutations)
## 
## Adjustment method for multiple comparisons:   fdr 
## call:  fourthcorner.rlq(xtest = rlq.adu, nrepet = nrepet, modeltype = 6,      typetest = "Q.axes", p.adjust.method.G = "fdr", p.adjust.method.D = "fdr") 
## 
## ---
## 
##                             Test   Stat          Obs     Std.Obs     Alter
## 1                AxcR1 / Climb.0 Homog.  0.946214475 -0.09008738      less
## 2                AxcR2 / Climb.0 Homog.  0.953524446  0.02525644      less
## 3                AxcR1 / Climb.1 Homog.  0.041543089 -0.12058008      less
## 4                AxcR2 / Climb.1 Homog.  0.040151018 -0.14784242      less
## 5                AxcR1 / Erect.0 Homog.  0.041543089 -0.12058008      less
## 6                AxcR2 / Erect.0 Homog.  0.040151018 -0.14784242      less
## 7                AxcR1 / Erect.1 Homog.  0.946214475 -0.09008738      less
## 8                AxcR2 / Erect.1 Homog.  0.953524446  0.02525644      less
## 9                AxcR1 / StemS.0 Homog.  0.063725169 -0.30647126      less
## 10               AxcR2 / StemS.0 Homog.  0.067401454 -0.27587513      less
## 11               AxcR1 / StemS.1 Homog.  0.459974652 -0.82185923      less
## 12               AxcR2 / StemS.1 Homog.  0.476457931 -0.73540300      less
## 13               AxcR1 / StemS.2 Homog.  0.449907516  0.99631797      less
## 14               AxcR2 / StemS.2 Homog.  0.450054434  1.01653310      less
## 15               AxcR1 / StemA.0 Homog.  0.255138403  0.15718359      less
## 16               AxcR2 / StemA.0 Homog.  0.262966389  0.61909324      less
## 17               AxcR1 / StemA.1 Homog.  0.744322033  3.56909044      less
## 18               AxcR2 / StemA.1 Homog.  0.726745676  3.51547492      less
## 19               AxcR1 / Leave.0 Homog.  0.196787106 -0.47792754      less
## 20               AxcR2 / Leave.0 Homog.  0.206272039  0.11441682      less
## 21               AxcR1 / Leave.1 Homog.  0.796221320  3.43844058      less
## 22               AxcR2 / Leave.1 Homog.  0.770822892  3.33136017      less
## 23       AxcR1 / MaxStemHeight_m      r -0.146229093 -1.63423957 two-sided
## 24       AxcR2 / MaxStemHeight_m      r  0.007058482  0.10373649 two-sided
## 25         AxcR1 / MaxStemDia_cm      r -0.228107646 -2.49875665 two-sided
## 26         AxcR2 / MaxStemDia_cm      r -0.019789182 -0.17691074 two-sided
## 27          AxcR1 / Under.canopy Homog.  0.841020103 -0.09278881      less
## 28          AxcR2 / Under.canopy Homog.  0.851560553  0.99844901      less
## 29     AxcR1 / Under.understorey Homog.  0.151502408  0.09984783      less
## 30     AxcR2 / Under.understorey Homog.  0.146719339  0.05490949      less
## 31 AxcR1 / AverageFruitLength_cm      r -0.222303910 -2.45141114 two-sided
## 32 AxcR2 / AverageFruitLength_cm      r  0.081615716  0.95544551 two-sided
## 33           AxcR1 / Fruit.large Homog.  0.194056441 -0.01987565      less
## 34           AxcR2 / Fruit.large Homog.  0.221778802  0.19708145      less
## 35           AxcR1 / Fruit.small Homog.  0.762533488 -0.24808065      less
## 36           AxcR2 / Fruit.small Homog.  0.772020852 -0.18302995      less
## 37     AxcR1 / Consp.conspicuous Homog.  0.756865120  1.61624642      less
## 38     AxcR2 / Consp.conspicuous Homog.  0.745364194  1.57803172      less
## 39         AxcR1 / Consp.cryptic Homog.  0.241199922 -0.35455008      less
## 40         AxcR2 / Consp.cryptic Homog.  0.238053448 -0.52247472      less
## 41               AxcR1 / Endem.N Homog.  0.838929670  0.65085637      less
## 42               AxcR2 / Endem.N Homog.  0.845511070  0.71155884      less
## 43               AxcR1 / Endem.Y Homog.  0.152714237 -0.64784022      less
## 44               AxcR2 / Endem.Y Homog.  0.154207766 -0.65168623      less
##               Pvalue         Pvalue.adj  
## 1              0.353              0.814  
## 2              0.407              0.814  
## 3  0.642431466030989           0.908875  
## 4  0.578069129916567           0.908875  
## 5  0.642431466030989           0.908875  
## 6  0.578069129916567           0.908875  
## 7              0.353              0.814  
## 8              0.407              0.814  
## 9  0.502024291497976           0.908875  
## 10 0.520242914979757           0.908875  
## 11             0.266              0.814  
## 12             0.282              0.814  
## 13             0.788              0.979  
## 14             0.801              0.979  
## 15             0.588  0.712324324324324  
## 16             0.752  0.807024390243902  
## 17                 1                  1  
## 18                 1                  1  
## 19             0.323  0.592166666666667  
## 20             0.566  0.711542857142857  
## 21                 1                  1  
## 22                 1                  1  
## 23             0.105  0.513333333333333  
## 24             0.915                  1  
## 25             0.008 0.0586666666666667 .
## 26             0.875                  1  
## 27             0.344              0.814  
## 28             0.851              0.851  
## 29             0.659           0.908875  
## 30             0.645           0.908875  
## 31             0.004             0.0352 *
## 32             0.393              0.814  
## 33             0.589           0.908875  
## 34             0.661           0.908875  
## 35             0.308              0.814  
## 36             0.335              0.814  
## 37             0.965                  1  
## 38             0.961                  1  
## 39             0.373  0.611285714285714  
## 40             0.313  0.592166666666667  
## 41             0.696              0.928  
## 42             0.724  0.936941176470588  
## 43             0.317              0.814  
## 44             0.313              0.814  
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

RLQ axes and environmental variables

 # print(testRaxes.comb.seed, stat = "D")
print(testRaxes.comb.juv, stat = "D")
## Fourth-corner Statistics
## ------------------------
## Permutation method  Comb. 2 and 4  ( 999  permutations)
## 
## Adjustment method for multiple comparisons:   fdr 
## call:  fourthcorner.rlq(xtest = rlq.juv, nrepet = nrepet, modeltype = 6,      typetest = "R.axes", p.adjust.method.G = "fdr", p.adjust.method.D = "fdr") 
## 
## ---
## 
##                     Test   Stat          Obs     Std.Obs     Alter Pvalue        Pvalue.adj  
## 1    Under.dense / AxcQ1 Homog.  0.216930739  0.09521265      less  0.664 0.885333333333333  
## 2      Under.low / AxcQ1 Homog.  0.217117060 -1.03408498      less  0.136 0.362666666666667  
## 3   Under.medium / AxcQ1 Homog.  0.552341694  1.53369752      less  0.956             0.956  
## 4            Cec / AxcQ1      r  0.040110133  1.33834260 two-sided  0.119 0.317333333333333  
## 5            T50 / AxcQ1      r -0.038099694 -0.86668712 two-sided  0.396            0.6336  
## 6            T10 / AxcQ1      r -0.007838861 -0.12105363 two-sided  0.908             0.959  
## 7  Canopy.Height / AxcQ1      r -0.034182237 -0.46220047 two-sided  0.689 0.856615384615385  
## 8      Elevation / AxcQ1      r  0.362613060  2.18173827 two-sided  0.014              0.12  
## 9    Under.dense / AxcQ2 Homog.  0.259287401  1.72175845      less  0.939             0.959  
## 10     Under.low / AxcQ2 Homog.  0.232825896 -0.52444764      less  0.307 0.545777777777778  
## 11  Under.medium / AxcQ2 Homog.  0.497756787 -0.34160165      less  0.443 0.644363636363636  
## 12           Cec / AxcQ2      r -0.023071200 -0.71727641 two-sided  0.339            0.5792  
## 13           T50 / AxcQ2      r -0.053522479 -1.32139600 two-sided  0.207 0.473142857142857  
## 14           T10 / AxcQ2      r  0.095535059  2.08006086 two-sided  0.024             0.128  
## 15 Canopy.Height / AxcQ2      r  0.136067684  1.96260301 two-sided  0.048             0.192  
## 16     Elevation / AxcQ2      r  0.005890217  0.05918776 two-sided  0.959             0.959  
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
print(testRaxes.comb.adu, stat = "D")
## Fourth-corner Statistics
## ------------------------
## Permutation method  Comb. 2 and 4  ( 999  permutations)
## 
## Adjustment method for multiple comparisons:   fdr 
## call:  fourthcorner.rlq(xtest = rlq.adu, nrepet = nrepet, modeltype = 6,      typetest = "R.axes", p.adjust.method.G = "fdr", p.adjust.method.D = "fdr") 
## 
## ---
## 
##                     Test   Stat         Obs     Std.Obs     Alter Pvalue        Pvalue.adj  
## 1    Under.dense / AxcQ1 Homog.  0.21076566 -0.27069161      less  0.384 0.558545454545455  
## 2      Under.low / AxcQ1 Homog.  0.26999928  0.91276484      less  0.825             0.825  
## 3   Under.medium / AxcQ1 Homog.  0.51265725  0.12749015      less  0.545 0.644266666666667  
## 4            Cec / AxcQ1      r  0.03891706  1.90715718 two-sided  0.044             0.276  
## 5            T50 / AxcQ1      r -0.02301942 -0.52285658 two-sided  0.664 0.708266666666667  
## 6            T10 / AxcQ1      r -0.14417779 -1.59092295 two-sided  0.093            0.2976  
## 7  Canopy.Height / AxcQ1      r -0.14846179 -2.03680536 two-sided  0.003             0.048 *
## 8      Elevation / AxcQ1      r  0.17185656  1.85875582 two-sided  0.064             0.276  
## 9    Under.dense / AxcQ2 Homog.  0.22904278  0.17538999      less  0.608 0.694857142857143  
## 10     Under.low / AxcQ2 Homog.  0.24807874 -0.07055589      less   0.44 0.586666666666667  
## 11  Under.medium / AxcQ2 Homog.  0.51941991  0.30582151      less  0.604 0.644266666666667  
## 12           Cec / AxcQ2      r  0.01535560  0.64604638 two-sided  0.557 0.685538461538462  
## 13           T50 / AxcQ2      r  0.09017765  1.68962730 two-sided  0.069             0.276  
## 14           T10 / AxcQ2      r  0.07446687  0.96376081 two-sided  0.393 0.571636363636364  
## 15 Canopy.Height / AxcQ2      r  0.08380570  1.32469785 two-sided  0.193 0.428444444444444  
## 16     Elevation / AxcQ2      r  0.12201475  1.37490180 two-sided  0.172 0.428444444444444  
## 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Results can be represented using a table with colors indicating significance :

# print("seedlings")
# 
# par(mfrow = c(1, 2))
# plot(testQaxes.comb.seed, alpha = 0.05, type = "table",
#     stat = "D2")
# plot(testRaxes.comb.seed, alpha = 0.05, type = "table",
# stat = "D2")

print("juveniles")
## [1] "juveniles"
par(mfrow = c(1, 2))
plot(testQaxes.comb.juv, alpha = 0.05, type = "table",
    stat = "D2")
plot(testRaxes.comb.juv, alpha = 0.05, type = "table",
stat = "D2")

print("adults")
## [1] "adults"
par(mfrow = c(1, 2))
plot(testQaxes.comb.adu, alpha = 0.05, type = "table",
    stat = "D2")
plot(testRaxes.comb.adu, alpha = 0.05, type = "table",
stat = "D2")

Significance with axes can also be reported on the factorial map of RLQ analysis. Here, significant associations with the first axis are represented in blue, with the second axis in orange, with both axes in green (variables with no significant association are in black)

## [1] "juveniles"

## [1] "adults"